The present invention generally relates to computer software technology and particularly to invoking multi-library applications on a multiple processor system.
A multiple processor system (MPS) may comprise a Power Processing Element (PPE) and a plurality of Synergistic Processing Elements (SPEs). The PPE and the plurality of SPEs share the main memory and each SPE has its own memory. IBM's Cell Broadband Engine (CBE) is one kind of MPS.
IBM's CBE is a MPS on a single chip, as shown in FIG. 1, having 9 processing units that share the same main memory, in which one is a (PPE) and the other eight are (SPEs). Based on such system architecture, the CBE can provide terrific system capabilities and CBE overcomes the three important performance limitations that are on other MPSs, i.e., power usage, memory usage and processor frequency. Therefore, the CBE has been widely used in signal processing, pattern matching, model building, object determining, mapping, communication, and encryption, etc. CBE has taken a leading position, especially in High Performance Computing. For high performance computing or other computation sensitive applications, more and more libraries have been rewritten to be suitable for running on CBE. However, the running efficiency and development efficiency that multiple libraries run on a single CBE is becoming an obvious problem.
Each computation sensitive application running on CBE mainly depends on an SPE to execute computing. Before an SPE begins to compute, the SPE will create a system thread and an SPE thread, and then destroy these threads after the SPE finishes computing. For invoking a multi-library application, thread creation and destruction has to be completed when invoking the first library; and the same applies when invoking the second and following libraries. Thread creation and destruction needs time. For huge computing tasks, the time for thread creation and destruction may not be significant. However, for small and computation sensitive applications that invoke dense libraries, such creation and destruction will consume a lot of time, which lowers the efficiency of the whole system and tasks.